<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:ui="http://java.sun.com/jsf/facelets"
      xmlns:f="http://java.sun.com/jsf/core"
      xmlns:p="http://primefaces.org/ui"
      xmlns:h="http://java.sun.com/jsf/html">

    <body>

        <ui:composition template="./../../WEB-INF/templates/MainTemplate.xhtml">

            <ui:define name="bar">
                <h:form id="barForm">
                    <p:panel id="barFormPanel" styleClass="noMargin noPadding noBorder">
                        <p:commandButton styleClass="actionButton" disabled="#{listadoAlmacenesUsuarioBean.entidadElegida==null}" id="localizacionesAlmacenButton" value="#{messages.LocalizacionesAlmacen}" update=":dialogoForm:localizacionesAlmacenPanel" oncomplete="dialogoLocalizacionesAlmacen.show();" actionListener="#{listadoAlmacenesUsuarioBean.elegirEntidad()}"></p:commandButton>
                        <p:commandButton styleClass="actionButton" disabled="#{listadoAlmacenesUsuarioBean.entidadElegida==null}" id="inventarioAlmacenButton" value="#{messages.InventarioAlmacen}" action="#{listadoAlmacenesUsuarioBean.irAInventario()}" actionListener="#{listadoAlmacenesUsuarioBean.elegirEntidad()}"></p:commandButton>
                    </p:panel>
                </h:form>
            </ui:define>

            
            <ui:define name="dialogs">
                <h:form id="dialogoForm">
                    <p:dialog modal="true" id="dialogoNuevoAlmacen" widgetVar="dialogoNuevoAlmacen"  header="#{messages.NuevoAlmacen}">
                        <h:panelGrid id="nuevoAlmacenPanelGrid" columns="4">
                            <p:outputLabel for="nombreAlmacen" value="#{messages.Nombre}"></p:outputLabel>
                            <p:inputText required="true" value="#{nuevoAlmacenBean.nuevoAlmacen.descripcion}" id="nombreAlmacen" ></p:inputText>
                            
                            <p:outputLabel for="direccionAlmacen" value="#{messages.Direccion}"></p:outputLabel>
                            <p:inputText value="#{nuevoAlmacenBean.nuevoAlmacen.direccion}" id="direccionAlmacen"/>
                            
                            <p:outputLabel for="tipoAlmacen" value="#{messages.TipoAlmacen}"></p:outputLabel>
                            <p:selectOneMenu value="#{nuevoAlmacenBean.nuevoAlmacen.tipoAlmacen}" converter="#{tipoAlmacenConverter}" id="tipoAlmacen" required="true" label="#{messages.TipoAlmacen}">
                                <f:selectItem itemLabel="#{messages.SeleccionaTipoAlmacen}" itemValue="" />  
                                <f:selectItems value="#{resourcesBean.tiposAlmacen}" var="tipoAlmacen" itemLabel="#{tipoAlmacen.descripcion}" itemValue="#{tipoAlmacen}"></f:selectItems>
                            </p:selectOneMenu>
                        </h:panelGrid>
                        <p:commandButton process="@parent" update=":almacenForm:almacenGrowl :almacenForm:almacenes" value="#{messages.Crear}" action="#{nuevoAlmacenBean.crearAlmacen()}"></p:commandButton>
                    </p:dialog>
                    
                    <p:dialog modal="true" id="dialogoEditarAlmacen" widgetVar="dialogoEditarAlmacen"  header="#{messages.Editar}">
                        <h:panelGrid id="editarAlmacenPanelGrid" columns="4">
                            <p:outputLabel for="editarNombreAlmacen" value="#{messages.Nombre}"></p:outputLabel>
                            <p:inputText required="true" value="#{editarAlmacenBean.almacen.descripcion}" id="editarNombreAlmacen" ></p:inputText>
                            
                            <p:outputLabel for="editarDireccionAlmacen" value="#{messages.Direccion}"></p:outputLabel>
                            <p:inputText value="#{editarAlmacenBean.almacen.direccion}" id="editarDireccionAlmacen"/>
                            
                            <p:outputLabel for="editarTipoAlmacen" value="#{messages.TipoAlmacen}"></p:outputLabel>
                            <p:selectOneMenu value="#{editarAlmacenBean.almacen.tipoAlmacen}" converter="#{tipoAlmacenConverter}" id="editarTipoAlmacen" required="true" label="#{messages.TipoAlmacen}">
                                <f:selectItem itemLabel="#{messages.SeleccionaTipoAlmacen}" itemValue="" />  
                                <f:selectItems value="#{resourcesBean.tiposAlmacen}" var="tipoAlmacen" itemLabel="#{tipoAlmacen.descripcion}" itemValue="#{tipoAlmacen}"></f:selectItems>
                            </p:selectOneMenu>
                        </h:panelGrid>
                        <p:commandButton process="@parent" update=":almacenForm:almacenGrowl :almacenForm:almacenes" value="#{messages.Editar}" action="#{editarAlmacenBean.editarAlmacen()}"></p:commandButton>
                    </p:dialog>
                    
                    <p:dialog modal="true" id="dialogoTiendasAlmacen" widgetVar="dialogoTiendasAlmacen"  header="#{messages.TiendasAlmacen}">
                        <p:panel id="tiendasAlmacenPanel">
                            <p:dataTable var="almacenTienda" id="tablaTiendasAlmacen" value="#{tiendasAlmacenBean.almacen.almacenTiendaList}">
                                <p:column headerText="#{messages.Tienda}" filterBy="#{almacenTienda.tienda.descripcion}">
                                    #{almacenTienda.tienda.descripcion}
                                </p:column>
                                <p:column headerText="#{messages.Prioridad}" filterBy="#{almacenTienda.prioridad}">
                                    #{almacenTienda.prioridad}
                                </p:column>
                                <p:column>
                                    <p:commandButton icon="ui-icon-close" update=":dialogoForm:tiendasAlmacenPanel" process=":dialogoForm:tablaTiendasAlmacen" actionListener="#{tiendasAlmacenBean.removeAlmacenTienda(almacenTienda)}"></p:commandButton>
                                </p:column>
                            </p:dataTable>
                            <h:panelGrid id="tiendasAlmacenPanelGrid" columns="4">
                                <p:outputLabel for="tiendaAlmacen" value="#{messages.Tienda}"></p:outputLabel>
                                <p:selectOneMenu value="#{tiendasAlmacenBean.almacenTiendaCollector.tienda}" converter="#{tiendaConverter}" id="tiendaAlmacen" required="true" label="#{messages.Tienda}">
                                    <f:selectItem itemLabel="#{messages.SeleccionaTienda}" itemValue="" />  
                                    <f:selectItems value="#{resourcesBean.tiendas}" var="tienda" itemLabel="#{tienda.descripcion}" itemValue="#{tienda}"></f:selectItems>
                                </p:selectOneMenu>

                                <p:outputLabel for="prioridadTiendaAlmacen" value="#{messages.Prioridad}"></p:outputLabel>
                                <h:panelGroup>
                                    <p:inputText value="#{tiendasAlmacenBean.almacenTiendaCollector.prioridad}" id="prioridadTiendaAlmacen"></p:inputText>
                                    <p:slider minValue="0" maxValue="9" for="prioridadTiendaAlmacen"></p:slider>
                                </h:panelGroup>
                            </h:panelGrid>
                            <p:commandButton process="@parent" update=":almacenForm:almacenGrowl :almacenForm:almacenes @parent" value="#{messages.Add}" action="#{tiendasAlmacenBean.addAlmacenTienda()}"></p:commandButton>
                        </p:panel>
                    </p:dialog>
                    <p:dialog modal="true" id="dialogoLocalizacionesAlmacen" widgetVar="dialogoLocalizacionesAlmacen"  header="#{messages.LocalizacionesAlmacen}">
                        <p:panel id="localizacionesAlmacenPanel">
                            <p:dataTable var="localizacionAlmacen" id="tablaLocalizacionesAlmacen" value="#{localizacionesAlmacenBean.almacen.tipoLocalizacionAlmacenList}">
                                <p:column headerText="#{messages.Nombre}" filterBy="#{localizacionAlmacen.descripcion}">
                                    #{localizacionAlmacen.descripcion}
                                </p:column>
                                <p:column headerText="#{messages.Prioridad}" filterBy="#{localizacionAlmacen.prioridad}">
                                    #{localizacionAlmacen.prioridad}
                                </p:column>
                                <p:column>
                                    <p:commandButton icon="ui-icon-close" update=":dialogoForm:localizacionesAlmacenPanel" process=":dialogoForm:tablaLocalizacionesAlmacen" actionListener="#{localizacionesAlmacenBean.removeTipoLocalizacionAlmacen(localizacionAlmacen)}"></p:commandButton>
                                </p:column>
                            </p:dataTable>
                            <h:panelGrid id="localizacionesAlmacenPanelGrid" columns="4">
                                <p:outputLabel for="descripcionLocalizacion" value="#{messages.Nombre}"></p:outputLabel>
                                <p:inputText id="descripcionLocalizacion" value="#{localizacionesAlmacenBean.tipoLocalizacionAlmacenCollector.descripcion}"></p:inputText>

                                <p:outputLabel for="prioridadLocalizacionAlmacen" value="#{messages.Prioridad}"></p:outputLabel>
                                <h:panelGroup>
                                    <p:inputText value="#{localizacionesAlmacenBean.tipoLocalizacionAlmacenCollector.prioridad}" id="prioridadLocalizacionAlmacen"></p:inputText>
                                    <p:slider minValue="0" maxValue="9" for="prioridadLocalizacionAlmacen"></p:slider>
                                </h:panelGroup>
                            </h:panelGrid>
                            <p:commandButton process="@parent" update=":almacenForm:almacenGrowl :almacenForm:almacenes @parent" value="#{messages.Add}" action="#{localizacionesAlmacenBean.addTipoLocalizacion()}"></p:commandButton>
                        </p:panel>
                    </p:dialog>
                </h:form>
            </ui:define>
            
            <ui:define name="content">
                <h:form id="almacenForm">
                    <p:growl autoUpdate="true" life="4000" id="almacenGrowl"></p:growl>
                    <p:dataTable emptyMessage="#{messages.NoAlmacen}" resizableColumns="true" selectionMode="single" liveScroll="true" scrollable="true" scrollRows="50" scrollHeight="600" id="almacenes" var="almacen" rowKey="#{almacen.idAlmacen}" selection="#{listadoAlmacenesUsuarioBean.entidadElegida}" value="#{listadoAlmacenesUsuarioBean.listadoEntidades}">
                        <p:ajax update=":barForm:barFormPanel" event="rowSelect" listener="#{listadoAlmacenesUsuarioBean.seleccionarEntidad()}"/> 
                        <p:ajax update=":barForm:barFormPanel" event="rowUnselect" listener="#{listadoAlmacenesUsuarioBean.deseleccionarEntidad()}"/>
                        <p:column sortBy="#{almacen.descripcion}" headerText="#{messages.Almacen}" filterBy="#{almacen.descripcion}" filterMatchMode="contains">
                            <h:outputText value="#{almacen.descripcion}"></h:outputText> 
                        </p:column>
                        <p:column sortBy="#{almacen.direccion}" headerText="#{messages.Direccion}">
                            <h:outputText value="#{almacen.direccion}"></h:outputText> 
                        </p:column>
                        <p:column sortBy="#{almacen.tipoAlmacen.descripcion}" filterBy="#{almacen.tipoAlmacen.descripcion}" filterMatchMode="contains" headerText="#{messages.TipoAlmacen}">
                            <h:outputText value="#{almacen.tipoAlmacen.descripcion}"></h:outputText> 
                        </p:column>
                        <p:column sortBy="#{almacen.cantidadTotal}" filterBy="#{almacen.cantidadTotal}" filterMatchMode="contains" headerText="#{messages.Cantidad}">
                            <h:outputText value="#{almacen.cantidadTotal}"></h:outputText> 
                        </p:column>
                    </p:dataTable>
                </h:form>
            </ui:define>

        </ui:composition>

    </body>
</html>
